/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jjsoft.disco.gco.rep;

import com.jjsoft.disco.gco.mdl.Detallefactura;
import com.jjsoft.disco.gco.mdl.Producto;
import com.jjsoft.disco.gco.mdl.Productobarra;
import com.jjsoft.disco.gco.ngc.FacturaManager;
import com.jjsoft.disco.gco.util.CNumeros;
import com.mysql.jdbc.Connection;
import java.awt.Desktop;
import java.io.File;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;

/**
 *
 * @author Johnny
 */
public class CReportes {
  

  public void RecuperarVentas(List <Detallefactura> listaDetalles, Date fecha1, Date fecha2,double covers,double subtotal,double iva, double total) throws JRException
  {
    List datos = new ArrayList();
    
    double totalP = 0.0D; double totalF = 0.0D; double totalT = 0.0D; double totalS = 0.0D;

    for (int i = 0; i < listaDetalles.size(); i++) {
      datos.add(new CDocumento(listaDetalles.get(i).getFecha(),listaDetalles.get(i).getCantidad(),listaDetalles.get(i).getIdArticulo().getDescripcion(),CNumeros.redondear(listaDetalles.get(i).getPrecioVenta())));
      //totalF += ((Factura)listaFacturas.get(i)).getTotal().doubleValue();
    }
    
    totalT = totalP + totalF + totalS;
    Date d = new Date();
    String fecha = d.getDate() + "-" + (d.getMonth() + 1) + "-" + (d.getYear() + 1900);

    JasperReport reporte = (JasperReport)JRLoader.loadObject("C:/disco/reporteVentas.jasper");

    Map parametros = new HashMap();
    parametros.put("desde", fecha1);
    parametros.put("hasta", fecha2);
    parametros.put("covers", covers); 
    parametros.put("subtotal", subtotal);   
    parametros.put("iva", iva);
    parametros.put("total", total);
    
    
    JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros, new JRBeanCollectionDataSource(datos));

    JRExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE, new File("C:/disco/ReporteVentas.pdf"));

    exporter.exportReport();
    try
    {
      File file = new File("C:/disco/ReporteVentas.pdf");
      Desktop.getDesktop().open(file);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  public void reporteBarra(List<Productobarra> listaProductos, int barra) throws JRException
  {
     List datos = new ArrayList();
    

    for (int i = 0; i < listaProductos.size(); i++) {
      datos.add(new RBarra(CNumeros.redondear(listaProductos.get(i).getCantidad()),listaProductos.get(i).getIdProducto().getDescripcion(),listaProductos.get(i).getIdProducto().getPrecioVenta()));
      //totalF += ((Factura)listaFacturas.get(i)).getTotal().doubleValue();
    }
    
    Date d = new Date();
    
    JasperReport reporte = (JasperReport)JRLoader.loadObject("C:/disco/reporteBarra.jasper");

    Map parametros = new HashMap();
    parametros.put("fecha", d);
    parametros.put("barra", barra);
    
    JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parametros, new JRBeanCollectionDataSource(datos));

    JRExporter exporter = new JRPdfExporter();
    exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
    exporter.setParameter(JRExporterParameter.OUTPUT_FILE, new File("C:/disco/ReporteBarra.pdf"));

    exporter.exportReport();
    try
    {
      File file = new File("C:/disco/ReporteBarra.pdf");
      Desktop.getDesktop().open(file);
    } catch (Exception e) {
      e.printStackTrace();
    } 
  }
}
